A wide variety of memory devices can be used to maintain and store data and instructions for various computers and similar systems. In conventional computing systems, Dynamic Random Access Memory (DRAM) technology has typically been employed to operate the dynamic memory of the computer in order for an application to operate at high speeds. However, DRAM used as main memory in computer systems is no longer scaling as rapidly as in the past. As a result, DRAM storage has become a limited resource in computing environments.
To address the limited DRAM, disk drives may be used as swap space to copy out infrequently used memory data from DRAM to the disk drive. The data may then be copied back to DRAM the next time it is used. However, in general, that process has severe performance consequences. Thus, that process is rarely used in modern servers. To address those performance consequences, NAND flash-based solid-state drives (SSDs) may be used as the swap space. However, even the use of NAND flash-based SSDs may have an undesirable impact on performance. For example, flash-based memory has certain limitations which include slower write times for data and latency associated with having to update entire sectors instead of individual addresses as in conventional systems that employ DRAM entirely for main memory.